<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>hello vue</title>
</head>

<body>
    <div id="app">
        <button-counter></button-counter>
        <hello-world></hello-world>
    </div>

    <script type="text/javascript" src="js/vue.js"></script>
    <script type="text/javascript">
        /*
        组件注册注意事项
        如果使用驼峰式命名组件，那么在使用组件的时候，只能在字符串模板中用驼峰的方式使用组件，但是
        在普通的标签模板中，必须使用短横线的方式使用组件
        */
        // 驼峰式命名
        Vue.component('HelloWorld', {
            data: function () {
                return {
                    msg: 'Hello world'
                }
            },
            template: '<div>{{msg}}</div>'
        })

        // 短横线分割命名
        Vue.component('button-counter', {
            data: function () {
                return {
                    count: 0
                }
            },
            template: `
            <div>
                <button @click="handle">点击加1==={{count}}</button>
                <HelloWorld></HelloWorld>
            </div>
            `,
            methods: {
                handle: function () {
                    this.count++;
                }
            }
        });

        var vm = new Vue({
            el: '#app',
            data: {
                msg: 'Hello Vue !'
            }
        });
    </script>
</body>

</html>